#include <iostream>

using namespace std;

// c++11
// template<typename T, typename U>
// auto add(T x, U y) -> decltype(x+y)
// {
//     return x+y;
// }

// c++14
template<typename T, typename U>
auto add(T x, U y)
{
    return x+y;
}

int main()
{
    cout << add<int, int>(1, 3) << endl;

    return 0;
}